%module "CEGUIWindowManager"

%{
#include "CEGUIWindowManager.h"
	%}

//#include "CEGUIBase.h"

%import "CEGUIString.i"
%import "CEGUIWindow.i"

//#include "CEGUILogger.h"
//#include "CEGUIIteratorBase.h"

//#include <map>
//#include <vector>

namespace CEGUI
{

	class WindowManager //: public Singleton <WindowManager> //, public EventSet
{
public:

	static WindowManager& getSingleton( void );

	static WindowManager* getSingletonPtr( void );

	Window* createWindow(const String& type, const String& name = "");

	void	destroyWindow(Window* window);

	void	destroyWindow(const String& window);

	Window*	getWindow(const String& name) const;

	bool	isWindowPresent(const String& name) const;

	void	destroyAllWindows(void);

	Window*	loadWindowLayout(const String& filename);//, const String& name_prefix = "", const String& resourceGroup = "", PropertyCallback* callback = 0, void* userdata = 0);

//    void saveWindowLayout(const String& window, const String& filename, const bool writeParent = false) const;

//    void saveWindowLayout(const Window& window, const String& filename, const bool writeParent = false) const;

//     void renameWindow(const String& window, const String& new_name);

//    void renameWindow(Window* window, const String& new_name);

};

} // End of  CEGUI namespace section
